The present invention pertains to a system for encoding and decoding digital information, and particularly to such a system wherein clock, data and partitioning information may be converted into a serial stream of coded binary bit periods and subsequently recovered.
A number of self clocking code systems, such as the Manchester code, are generally well known for encoding digital information comprising a data component and a clock component in the form of an encoded signal which comprises a serial stream of binary coded bit periods. An important application for such an encoding system is the storage of digital information on a medium, such as magnetic tape, and its subsequent recovery, wherein the use of separate data and clock channels may be disadvantageous for various reasons. In a common form of the Manchester code, each uncoded logic 1 bit period is defined in the encoded signal by a negative transition in the middle of a coded bit period, and each uncoded logic 0 bit period is defined in the encoded signal by a positive transition in the middle of a coded bit period. The complementary form of the above Manchester code may also be used, wherein uncoded logic 1's are defined in the encoded signal by positive transitions, and logic 0's are defined in the encoded signal by negative transitions.
If the data component of digital information to be encoded in a self-clocking code system comprises discrete data bit sets, it may be necessary to include partitioning information in the encoded signal to separate, or partition, some or all of the data bit sets from other data bit sets. As is well known, such partitioning information is very important where encoded signals are subject to indeterminate interruptions, for example, where an encoded signal is stored on magnetic tape subject to indeterminate start/stop operations. Such partitioning information is also very important in decoding an encoded signal in which time base instabilities and spurious transitions have been induced. According to conventional practice, a self-clocking code such as the Manchester code may provide separation information by employing a partitioning code comprising a selected number of partitioning bit periods having a selected combination of logic levels. The bits of the partitioning code are inserted into a sequence of uncoded data bit periods following a selected data bit set, encoded in the manner of the data bit periods, and subsequently decoded to separate the selected data bit set. In a Manchester encoded signal, according to the above conventional practice, each uncoded partitioning bit period is represented by a transition in the middle of a coded bit period, whereby it may be indistinguishable from encoded data.
Employment of such partitioning codes to partition encoded data bit sets generally requires a relatively complex circuitry both to insert the partitioning code into the data bit sequence before encoding, and to detect the presence of the partitioning code after decoding. In addition, in some applications the number of bits in a partitioning code may be large compared to the number of bit periods in the data bit sets. Consequently, the data density of the encoded signal, the number of coded bit periods per unit of time which represent data information, is significantly reduced. In applications where it is necessary to maximize the amount of data information stored on a magnetic medium, the use of conventional partitioning codes to separate data bits may be undesirable.